In a computing device such as a personal computer, a computer server, or the like, and as is known, data is typically persistently stored on the computing device in the form of local computer files resident on one or more local storage volumes of the computing device. Each such storage volume may reside on a hard drive of the computing device or the like, and such storage volume may be organized by, accessed through, and otherwise controlled by a file system running on the computing device, as is also known.
At times, it can be the case that some, many, and perhaps even most of the computer files on the storage volume are not of interest and can be considered to have become ‘cold’. That is to say, such cold files have not been accessed for some extended length of time and/or likely will not be accessed for some extended length of time, for example, and therefore have little if any real value in remaining on the volume.
Of course, such cold files could simply be deleted from the storage volume, especially if there is a need for space on such volume. However, it is to be appreciated that most users are loathe to delete files simply to create space. In addition, it is considered bad practice to delete a cold file merely because of perceived disuse. At any rate, it can and likely will be the case that a cold file though not considered needed and not foreseen as needed may nevertheless become needed at some future point.
In such a situation, then, it would be useful to be able to create space on the volume by moving data from such cold files to an alternate location, while still allowing such cold files to maintain a presence on the volume. That is, it would be useful to be able to ‘ghost’ a cold file by moving data from such cold files to the alternate location or to copy the entire file to the alternate location, while leaving the cold file in a smaller, ‘ghosted’ form on the volume. Thus, if in fact the ghosted file is needed on the computing device, the data for such ghosted file may be retrieved from the alternate location, the ghosted file may be reconstituted based on thereon, and such reconstituted file may then be employed.
In another scenario, it can be the case that data files of an organization or the like are to be replicated at multiple branch locations of the organization, perhaps from a central location such as a hub. For example, an architectural design firm may wish to have all architectural design files thereof available at any one of several branches of such firm.
In such a situation, a networked system can be constructed to replicate a copy of each file to each branch, and to keep all files at all branches current. In such a system, for example, a centralized hub server would store each such file, and a replication service would be employed to distribute a copy of each file at the hub over a network to a branch server or the like at each branch. However, it is to be appreciated that as the number of files of the organization increases, and as the size of each file increases, and as the number of branches increases, the amount of traffic over the network also increases, perhaps to a point that exceeds available bandwidth. Moreover, as the overall size of all the files at the hub server increases, it may in fact become the case that each branch server does not have enough space available thereon to store all of such files as replicated from the hub server.
Similar to the previous scenario, though, it can be the case that some, many, and perhaps even most of the computer files on the branch server of a particular branch are not of interest and can be considered to be superfluous. Such superfluous files may for example relate to matters that are not relevant to the particular branch, likely will not be accessed through the particular branch, and therefore have little if any real value in being replicated on the branch server for the particular branch. For example, a branch office of an architectural design firm in Wilkes-Barre, Pa. likely has very little if any need to have architectural design files relating to a project handled by a branch office of the firm in Boynton Beach, Fla.
In such a situation, then, and similar to previous scenario, it would be useful to be able to wholly store on a branch server of a particular branch only those files relevant to the particular branch, while only partially storing on such branch server of such particular branch all other non-relevant files as available from the hub server for the organization. Thus, in a manner akin to that of the previous scenario, it would be useful to be able to ‘ghost’ the non-relevant files at the branch server of the particular branch, such that each non-relevant file remains on the branch server in a smaller, ‘ghosted’ form. Thus, and again, if in fact the ghosted file is needed at the branch server, the data for such ghosted file may be retrieved from the hub server, the ghosted file may be reconstituted based on thereon, and such reconstituted file may then be employed.
Accordingly, a need exists for a method and mechanism by which a file at a source such as a local volume or a branch server may be replicated or ghosted such that the data thereof is stored at a sink such as an alternate location or a hub server, and the file at the source is thus in a reduced or ghosted form that can be reconstituted if need be. In particular, a need exists for such a method and mechanism by which such a ghosted file may be formed and reconstituted, as necessary.